home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Internet Surfer 2.0
/
Internet Surfer 2.0 (Wayzata Technology) (1996).iso
/
pc
/
text
/
mac
/
faqs.492
< prev
next >
Wrap
Text File
|
1996-02-12
|
28KB
|
697 lines
Frequently Asked Questions (FAQS);faqs.492
To slow down the tendency towards fragmentation, periodically
reorder the blocks in the free list. To do this, dismount the
filesystem (with `/etc/umount') and run `fsck -S'. You will get
a message saying:
FILE SYSTEM NOT MODIFIED, STILL DIRTY.
Don't worry -- ignore that message.
To determine how badly your filesystems are fragmented, run
`fsanalyze' by Michael J. Young, from comp.sources.misc. You will
need patchlevel 3 to analyze XENIX filesystems.
The conventional cure for filesystem fragmentation is:
- Make a full backup of the filesystem. Use `cpio' (or `afio' if
available). `dump' and `volcopy' do an image backup that will
restore in a fragmented manner. `tar' does not backup device
nodes, pipes, or directories.
- Recreate an empty filesystem with `divvy' or `mkfs'. `divvy'
is easier to use -- simply select the `create' option. However,
`mkfs' will be required if you want a non-default number of
inodes. Invoke `divvy' with:
/etc/divvy -c 1 -b 1 # for 1st physical disk
/etc/divvy -c 1 -b 1 -p 1 # for 2nd physical disk
- Reload the filesystem from the backup.
- Regenerate the `lost+found' directory. Run:
# Substitute appropriate name for `foo'.
/etc/fsck /dev/foo
/etc/mount /dev/foo /foo
mkdir /foo/lost+found
for i in 1 2 3 4 5 6 7 8 ; do
for j in 1 2 3 4 5 6 7 8 ; do
touch /foo/lost+found/x$i$j
done
done
rm /foo/lost+found/x??
/etc/umount /dev/foo
Be very careful with this procedure. We suggest you verify your
backup is readable before zapping the filesystem. One mistake
(especially when running `mkfs' or `divvy') will trash everything.
The filesystem you trash may be your own.
******************************************************************************
************************* Communications Questions *************************
******************************************************************************
QD1. How do I add more than 2 COM ports?
Dumb serial cards (and internal modems) may be configured for XENIX
as COM3 and COM4 -- with one big caveat. Each COM port requires its
own interrupt number. If you have an unused IRQ and the Development
System, you may build additional COM ports into the kernel. To
illustrate the procedure, we will add a COM3 configured as follows:
I/O Addr: 0x3E8
IRQ: 5
device: /dev/tty3a Major=5, Minor=16
/dev/tty3A Major=5, Minor=144
1. Edit `/usr/sys/io/sioconf.c'.
The two lines in this file that describe COM1 and COM2 are:
{0,IBM_BOARD, 1,4,0, (sd)0x3f8,0, 0,MCRBIT3}, /*ibm COM1*/
{1,IBM_BOARD, 1,3,8, (sd)0x2f8,0, 0,MCRBIT3}, /*ibm COM2*/
Add a line that says:
{2,IBM_BOARD, 1,5,16, (sd)0x3e8,0, 0,MCRBIT3}, /*ibm COM3*/
See `/usr/sys/io/sioconf.h' for details.
2. Edit `/usr/sys/conf/master'.
The serial ports are defined by the line:
sio 4 0577 104 sio 0 0 5 1 7 3 4 33 34
The last four fields define the interrupt numbers used. Change
the `33' to a `5' since COM3 will be on IRQ5. For reference,
here is the mapping between IRQ lines and the master file
`magic numbers':
IRQ0 0 IRQ4 4 IRQ8 30 IRQ12 34
IRQ1 1 IRQ5 5 IRQ9 31 IRQ13 35
IRQ2 31 IRQ6 6 IRQ10 32 IRQ14 36
IRQ3 3 IRQ7 7 IRQ11 33 IRQ15 37
3. Rebuild the kernel. Run:
cd /usr/sys/conf
make
Do not use `link_xenix' here. You need to run `make' to get
`sioconf.o' and the kernel data files rebuilt.
4. Install the new kernel. Run:
/usr/sys/conf/hdinstall
This will make a backup of your current kernel to `/xenix.old'.
5. Create the device nodes. Run:
mknod /dev/tty3a c 5 16
mknod /dev/tty3A c 5 144
Reboot your system, and the new serial port should be there.
QD2. Where is the `gettydefs' entry for 19200 serial lines?
For historical reasons, terminal speeds of 19200 and 38400 are
called `EXTA' and `EXTB', not `B19200' and `B38400'. Entries `n'
and `o' in the `/etc/gettydefs' file are for 19200 and 38400,
respectively. Once logged in you can change the line speed with
the `stty' command:
stty 9600 # set to 9600 bps (bits per second)
stty exta # set to 19200 bps
stty extb # set to 39400 bps
A smart serial card is recommended for these two highest speeds.
QD3. How can I have more mscreen(C) sessions?
The mscreen(C) facility provides multiple sessions from a serial terminal
by `multiplexing' your terminal (tty) line onto several pseudo-terminal
(pty) lines. XENIX is shipped with eight ptys enabled, that provides
a system-wide limit of eight sessions through the mscreen(C) command.
First off, you need to determine whether you are allocating mscreen(C)
sessions wisely. For example, SCO ships an `/etc/mscreencap' file
that runs six sessions on a WY-60 terminal. If you edit `mscreencap'
and cut this down to three you immediately double the number of people
who can run mscreen(C).
You cannot increase this number beyond eight if you are running TCP/IP.
(More about this in a moment.) If you are not running TCP/IP, then
you can increase the number of possible mscreen(C) sessions by: first
creating more ptys in the kernel, second creating the device nodes
for the new ptys, and finally placing a `getty' upon each of these
new ptys.
To create more ptys in the kernel, increase the `nspttys' kernel
parameter. With XENIX 2.3.4, run the `configure' command interactively
and select the `Multiscreens' option. For older versions of XENIX,
run `configure' manually. For example, to provide sixteen ptys, run:
cd /usr/sys/conf
./configure nspttys=16
Once `nspttys' is set, run `link_xenix' and `hdinstall' to build and
install a new kernel.
Next, you need to create the device nodes in the /dev directory for
these additional ptys. Unfortunately, mscreen(C) uses a very poor
naming strategy for ptys beyond the 8th. Once you go beyond the
/dev/ttyp7 in the base XENIX distribution, mscreen(C) next looks for
not /dev/ttyp8, but rather /dev/ttyp01. Therefore you should create
the eighth pty with the commands:
cd /dev
mknod ttyp01 c 54 8
mknod ptyp01 c 55 8
chmod 666 ptyp01
chmod 644 ttyp01
You might notice that these names are the same ones used by `rlogind'
and `telnetd' under SCO TCP/IP. Unfortunately, to use these ptys for
mscreen(C) you need to place a `getty' on them -- but if you do then
rlogin/telnet will break. Those running TCP/IP (and not weak of heart)
can try editing the `/dev/ttyp' string in the `mscreen' binary and
totally rename the pty devices.
Finally, edit `/etc/ttys' (and `/etc/ttytype') to tell them about
the new pty lines, and run `enable' upon each of the lines.
QD4. Upgraded to 2.3.4 and flow control broke with mscreen(C).
The 2.3.4 version of mscreen(C) was changed to run the tty line totally
raw. This is required so that the ^S and ^Q keys are passed onto
programs that need them, such as `emacs' and Foxbase. An unfortunate
side effect of handling flow control on the pty side rather than the
tty side is that response to flow control is a lot more sluggish. Now,
when you hit ^S you might get another screenful of data before the
display actually freezes.
If you never run any applications that require full 8-bit transparency,
one way to make flow control more responsive is to rename `mscreen'
to `/usr/bin/mscreen.sco' and install the following script in its
place:
:
tty=`tty`
( sleep 5 ; stty ixon <$tty ) &
exec mscreen.sco
QD5. Terminals act funny, modems drop characters, help!!
If you are losing characters on your serial lines, consider the
following steps:
* Ensure that flow control is working right.
* If you are running dumb COM ports, either upgrade the UART chips
to 16550As or switch to a smart serial card.
* If you have a lot of users or lots of high speed data lines,
increase the number of `clist' buffers in the kernel.
* If you upgraded to 16550A UARTs and this helped but did not
solve the problem, then adjust the FIFO trigger level.
* If you are running high speed lines on a loaded system, adjust
the `ttyhog' value.
When diagnosing serial problems, start at the top of this list
and work down. If your flow control is broke, it will do no good
to go poking around inside your XENIX kernel.
QD6. Does XENIX support 16550A UARTs?
The guts of a standard COM port is a UART (universal asynchronous
receiver/transmitter) chip. Most serial ports use the 16450 or
an equivalent chip. The 16550A is a pin-compatible, drop in
replacement which adds 16-characters of on-chip FIFO buffering.
The FIFOs reduce system loading and increase performance.
Starting with 2.3.4, the `sio' driver recognizes 16550A UARTs and
enables the on-chip FIFOs. Older versions of XENIX merely treat
this chip as an expensive 16450. You can get 16550A support with
any version of XENIX by installing the FAS driver written by Uwe
Doering and based upon Jim Murray's `asy' driver. FAS was published
in alt.sources, and is available at most reputable archive sites.
We recommend sticking with the National Semiconductor NS16550A.
Many manufactures make usable 16450 clones, but some of the 16550
compatible chips aren't so compatible. Also, older versions of
the 16550 are known to be broken. Ensure yours have an `A' suffix.
QD7. How do I increase the number of `clists'?
XENIX buffers terminal characters in data structures called
`clists'. There is a fixed pool of clists on the system, and when
that supply is exhausted incoming characters are dropped. Therefore,
the more active users you have on your system, the larger this
pool of clists should be. The default configuration is 100 clists.
Each terminal line requires an average of 5 to 10 clists. High
speed modems need more. A conservative strategy would be to
allocate 15 clists per active terminal. For example, if you have
16 serial ports and 4 console screens active at once, allocate
(16+4)*15 or 300 clists.
To see the number of clists on your system, login as root and run:
cd /usr/sys/conf
./configure -y NCLIST
To change the number of clists, say to 300, login as root and run:
cd /usr/sys/conf
./configure NCLIST=300
then rebuild and install a new kernel and reboot.
QD8. How do I change the 16550A trigger level?
If installing a 16550A UART helped but didn't totally fix a lost
character problem, and your system is heavily loaded, then there
is something else you can try. If you installed a 16550A and
there was no effect at all, then skip this -- it won't help.
The XENIX `sio' driver initializes the 16550A with a trigger level
of 14. This means that under continual data streams the UART will
wait until 14 characters accumulate before telling XENIX to come
get them. This gives the system two character times to get in
and service the COM port. If XENIX does not service the port in
that time the 16-character buffer will overflow and and characters
will be dropped. This might happen on a heavily loaded system.
The trigger level is initialized at boot time from the 16-byte
`sio_fifoctl[]' array. This array specifies the UART control
register initialization values for device minor numbers 0 through
15. Or more exactly, the minor number is ANDed with 0x0F to get
the index into this array. For example, the initialization for
/dev/tty2a (minor=8) is in `sio_fifoctl[8]'. The possible values
are as follows:
sio_fifoctl: 0xCF 0x8F 0x4F 0x0F
trigger level: 14 8 4 1
The standard value is 0xCF. A smaller value will notify the system
earlier that characters are waiting, thus providing the system
more time to service the port, but increasing the number of
interrupts generated by the port.
As an example, here is how to change the trigger level for /dev/tty2a
(and /dev/tty2A) to 8 characters (code=0x8F):
cp /xenix /xenix.save # make a backup!
adb -w /xenix # use "/etc/_fst" if no "adb"
* sio_fifoctl+8/x
sio_fifoctl+0x8: 0xcfcf
| |
| `---- This is the 8-bit value for the
| port we want (minor=8).
|
`------ This is the 8-bit value for the
next port (minor=9).
* sio_fifoctl+0x8/w 0xcf8f
sio_fifoctl+0x8: 0xcfcf= 0xcf8f
* $q
QD9. How do I adjust the `ttyhog' value?
Since XENIX has a fixed pool of clists, the kernel tries to prevent
one tty from hogging all of them. The limit is defined by `ttyhog',
and defaults to 256 (0x100 hex). This limit might be too low if
you've got some particularly fast devices on a particularly slow
system. To change the `ttyhog' value you must patch the kernel
image. The following increases `ttyhog' to 512 (0x200 hex).
cp /xenix /xenix.save # make a backup!
adb -w /xenix # use "/etc/_fst" if no "adb"
* ttyhog/x
_ttyhog: 0x100
* ttyhog/w 0x200
_ttyhog: 0x100= 0x200
* $q
QD10. Where can I find TCP/IP? NFS?
TCP/IP = many places. NFS = forget it.
Some TCP/IP vendors are SCO, Novell (the old `Excelan Lan Workplace'
package), and Network Research Corp. Our preference is for the
SCO package. It is offered in two pieces: the runtime system
and the development package. Please note that you need at least
the SCO Streams Runtime option before installing TCP/IP. Many of
the BSD4.3 networking utilities are provided, and the socket
interface follows the BSD4.3 model.
NFS for XENIX is not and will not be available. Newer versions
of UNIX provide either a `vnode' (BSD UNIX) or `filesystem switch'
(System V 3.2 and beyond) mechanism, that supports new filesystem
types. With XENIX, the filesystem support must be coded right
into the kernel. The task of merging NFS code with VP/ix hacks,
XENIX-net hacks, etc. is more than can be justified.
QD11. BSD based uucp can't connect to my machine.
BSD based uucp sends even parity. XENIX uucp expects no parity.
Add:
"" P_ZERO
to the chat script in their (not your) `Systems' or `L.sys' file.
For example, the following works on a Sun 3:
xnxbox Any uucp 19200 5553333 "" P_ZERO "" \r in:--in: nuucp
QD12. uucp truncates my system name to seven characters!
This misfeature was introduced in the xnx155b supplement. The
story we hear is that SCO broke their `uucp' to cater to systems
that choke on long system names. There is a workaround. For
system name = `verylongname', add to every record in the
/usr/lib/uucp/Permissions file:
MYNAME=verylongname
Next, rename /usr/bin/uuname to /usr/bin/uuname.sco. Replace
/usr/bin/uuname with:
:
if [ $# -ne 1 -o "X$1" != "X-l" ] ; then
exec /usr/bin/uuname.sco $@
exit 1
fi
head -1 /etc/systemid
exit $?
This allows programs using `uuname' to receive the correct,
untruncated name.
QD13. What is the uucp `windows' patch?
uucp transmits data in packets, usually 64 bytes apiece. An
acknowledgement is required for every packet sent -- but not
immediately. A window of unacknowledged packets is allowed. The
default window size is three, that means `uucico' won't stop
sending unless it falls more than three packets behind. A three
packet window isn't big enough for very fast media and long delay
media. The `uucico' binary can be patched to increase the window
size by the following manual procedure:
cd /usr/lib/uucp
cp uucico uucico.old # make a backup copy!!
adb -w uucico
* windows/x # display windows value
_windows: 0x3
* windows/w 7 # change it to seven
_windows: 0x3= 0x7
* $q # done
If you have XENIX 2.3.4 but not the Development System, use
`/etc/_fst' instead of `adb'. If you can't find adb on your
system, look on the N02 disk.
This change increases the window size to seven -- the maximum
possible. A similar change must be performed on the remote system's
uucico because the actual window size is negotiated as part of
the protocol startup.
QD14. uucp gives `alarm' messages, eventually dies.
If you run uucp in debugging mode (`uutry -x9') and see it get
stuck like:
alarm 1
send 37777777621
alarm 2
send 37777777621
alarm 3
send 37777777621
alarm 4
send 37777777621
and eventually die, this means your system got jammed waiting for
a response that never came. The most common cause of this problem
running uucp across a modem with XON/XOFF flow control enabled
(e.g. a Telebit modem with S58=3). You can't do that; you must
run with no flow control or RTS/CTS handshaking (on a Telebit that
would be S58=0 or S58=2, respectively). Other possible causes of
this problem are serial cards with broken handshaking or running
out of clists.
******************************************************************************
********************** Display and Graphics Questions **********************
******************************************************************************
QE1. How can I do graphics under XENIX? What programs are available?
There are two approaches to graphics programming. At the very
lowest level, the screen(HW) manual page describes ioctl() codes
to access the video display memory and controller. Device-independent
graphics is provided by the Computer Graphics Interface (CGI)
package included with the XENIX Development System. CGI drivers
are provided for VGA, EGA, and Hercules displays; Epson, LaserJet,
and Postscript printers; and HP plotters. Several programs have
been posted to the net that run under CGI, such as gnuplot,
starchart, and gif. See comp.sources.misc.
QE2. CGI graphics mangles grey scale on a mono VGA.
SCO fixed their monochrome VGA driver in version 2.3.3. The
default color mapping in CGI maps many colors with the identical
total intensity. They appear as the same shade grey-scale display.
Try using the CGI functions vs_color() and/or vsc_table() to create
a color map that works with your display. Try vsf_style() to
create hatching or other fill-patterns in place of colors.
QE3. CGI graphics fail on a LaserJet in landscape mode.
A bug in the CGI 1.1.0 LaserJet driver causes all output to
appear on a single line. In landscape mode the driver puts out
a spurious escape sequence `\033&a864V' that forces all output
to the same position on the page. You can either remove the
offending escape sequence from the driver with a binary editor
(keep a backup copy), or use a filter to clobber that sequence
from the output.
QE4. How can I do a printscreen under XENIX?
MS-DOS users can produce a screen printout with one keystroke.
XENIX does not offer this builtin capability. SCO's MultiView
product provides this. Also, it can be simulated with the following
script:
:
# @(#) prtscrn Print Screen
# execute from cu as ~!prtscrn
oldstty=`stty -g` # save stty
stty -echo ixon ixoff -ixany # no echo
/bin/echo '\033[2i\c' # send screen to host
# grab 24 lines, clean up trailing blanks, print it
sed -e 's/ *$//' -e 24q | lp
stty $oldstty # put stty back when done.
Another approach is the `prtscrn2' program by Chip Rosenthal. It
grabs the contents of any console screen and sends it to standard
output. See comp.sources.misc.
******************************************************************************
*************** XENIX and MS-DOS Interoperability Questions ****************
******************************************************************************
QX1. Can XENIX share a hard disk with MS-DOS?
Yes. You must:
- Install MS-DOS 3.2 bootable partition as the FIRST partition.
- Install XENIX bootable as the next partition.
- Select XENIX as the `active' partition.
At the
Boot
:
prompt either type `dos' for MS-DOS boot or press ENTER for XENIX.
If you create any other type of MS-DOS partition (e.g. one of the
new larger sized MS-DOS 5.0 partitions) or forget to create the
MS-DOS partition before loading XENIX, then you can still access
the MS-DOS partition by booting from a floppy disk.
QX2. Can XENIX access MS-DOS disks?
Yes, with limitations. The commands on the `dos(C)' manual page
provide access to MS-DOS disks (floppy and fixed) under XENIX.
The limitation is that only conventional MS-DOS 3.2 hard disk
partitions can be recognized. Extended MS-DOS partitions cannot.
If you run into problems with the dos(C) commands, check that
`/etc/default/msdos' provides proper aliases for the A:, B:, etc.
devices. Also, if root can access the MS-DOS fixed disk but users
can't, check the permissions on /dev/hd0d (the XENIX name of the
MS-DOS partition on the first fixed disk).
The `mtools' package by Emmet Gray in comp.sources.misc provides
better handling of MS-DOS devices under XENIX. Modify the
`devices.c' file to understand XENIX device naming.
#ifdef M_XENIX
struct device devices[] = {
{'A', "/dev/install", 0L, 12, 0, (int (*) ()) 0, 0, 0, 0},
{'B', "/dev/install1", 0L, 12, 0, (int (*) ()) 0, 0, 0, 0},
{'C', "/dev/hd0d", 0L, 16, 0, (int (*) ()) 0, 0, 0, 0},
{'D', "/dev/hd1d", 0L, 16, 0, (int (*) ()) 0, 0, 0, 0},
{'\0', (char *) NULL, 0L, 0, 0, (int (*) ()) 0, 0, 0, 0}
};
#endif /* M_XENIX */
If you assign `/dev/install' to the `A' drive, you don't need to
worry about disk density when reading and writing. However, you
need to specify the full device name when formatting. For example,
to format a high-density disk in drive A: you must specify the
full device name:
dosformat /dev/fd096ds15
QX3. Can XENIX execute MS-DOS programs?
Yes. You must purchase SCO VP/ix. VP/ix emulates an 8086 PC/XT
running MS-DOS. The compatibility provided by VP/ix is fair with
a significant performance penalty. VP/ix will not run programs
that use 80286 or 80386 instruction codes. VP/ix is not available
for XENIX/286.
QX4. Can MS-DOS execute XENIX programs?
No. With the XENIX Development System, you can compile programs
to execute under MS-DOS with the `-dos' command line switch.
******************************************************************************
********************* The (in)Famous XENIX Cheat-Sheet *********************
******************************************************************************
QZ1. What the $%*&! is happening?
Who am I? /usr/bin/who am i
Where am I? /bin/pwd
What am I doing? /bin/ps -f
Am I having fun yet? /usr/games/worms -R
What's my user/group id? /usr/bin/id
Who did I login as? /usr/bin/logname
What's my terminal? /bin/tty
What are my terminal parameters? /bin/stty -a
Is terminal flow control working? /usr/games/stars
What is my current crontab file? /usr/bin/crontab -l
Do I have uucp jobs queued? /usr/bin/uustat
What is the system doing? /usr/bin/w
How is the system running? /usr/bin/vmstat 10
Has the system been swapping? /usr/bin/vmstat -s
Open files, inodes, processes? /bin/pstat | grep '^[0-9]'
What are the kernel parameters? /usr/sys/conf/configure -x
What versions are installed? egrep "#prd|#set|#rel" /etc/perms/*
What are the hardware settings? /etc/hwconfig -h
Is /etc/passwd correct? /etc/pwcheck
Is /etc/group correct? /etc/grpcheck
Is /etc/gettydefs correct? /etc/getty -c /etc/gettydefs
Do all files have owners? /usr/bin/quot
Who is using all the disk space? /usr/bin/quot
When did joe last login? /usr/bin/last joe
What files are owned by UID=944? find / -user 944 -exec l -d {} \;
Are file perms/owners set OK? cd / ;
/etc/fixperm -n /etc/perms/rts
How about perms on uucp files? cd / ;
/etc/fixperm -nd UUCP /etc/perms/rts
Check uucp file consistency. /usr/lib/uucp/uucheck
What are uucp access permissions? /usr/lib/uucp/uucheck -v
What is the print spooler doing? /usr/bin/lpstat -t
Stop the scheduler. /usr/lib/lpshut
Restart a printer. /usr/lib/accept printer_name ;
/usr/bin/enable printer_name
[Following apply only if TCP/IP is installed.]
Where am I? /usr/bin/hostname
Is system foo alive? /usr/bin/ping foo
What machines are connected? /usr/bin/netstat
How is the network doing? /usr/bin/netstat 10
Where are the packets going? /usr/bin/netstat -r
Network not work? /usr/bin/netstat -s
[Thanks to Jeff Liebermann.]
[ end of sco-xenix 1.35 ]
Xref: bloom-picayune.mit.edu comp.unix.xenix.sco:7104 news.answers:3917
Newsgroups: comp.unix.xenix.sco,news.answers
Path: bloom-picayune.mit.edu!snorkelwacker.mit.edu!news.media.mit.edu!micro-heart-of-gold.mit.edu!wupost!usc!cs.utexas.edu!chinacat!chip
From: chip@chinacat.unicom.com (Chip Rosenthal)
Subject: Welcome to comp.unix.xenix.sco [changes from previous version]
Organization: Unicom Systems Development, Austin, TX
Date: Fri, 06 Nov 1992 06:12:42 GMT
Approved: news-answers-request@MIT.Edu
Message-ID: <sco-xenix-diff-921106@chinacat.unicom.com>
Followup-To: comp.unix.xenix.sco
Supersedes: <sco-xenix-diff-921009@chinacat.unicom.com>
Lines: 48
Archive-name: sco-xenix-diff
News-answers-archive-name: sco/xenix-diff
Posting-frequency: monthly
Version: 1.35
*** /tmp/faq2833.prev-version Fri Nov 6 00:11:04 1992
--- /tmp/faq2833.curr-version Fri Nov 6 00:11:02 1992
***************
*** 1,4 ****
! @(#) sco-xenix 1.34 92/10/08 18:42:15
Welcome to comp.unix.xenix.sco. This newsgroup is about the XENIX
operating system from the Santa Cruz Operation (SCO). If you have an
--- 1,4 ----
! @(#) sco-xenix 1.35 92/11/06 00:06:25
Welcome to comp.unix.xenix.sco. This newsgroup is about the XENIX
operating system from the Santa Cruz Operation (SCO). If you have an
***************
*** 1132,1138 ****
sed -e 's/ *$//' -e 24q | lp
stty $oldstty # put stty back when done.